C/C++时间字符串和时间戳的相互转化 您所在的位置:网站首页 linux c 打印时间戳 C/C++时间字符串和时间戳的相互转化

C/C++时间字符串和时间戳的相互转化

#C/C++时间字符串和时间戳的相互转化| 来源: 网络整理| 查看: 265

用到的函数主要有strftime、strptime 、localtime 、mktime。 名词解释: 时间戳:是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数。 时间字符串:形如2021-12-01 12:00:00 size_t strftime(char *s,size_t maxsize,char *format,const struct tm *timeptr) 作用:strftime将一个tm结构格式化为一个字符串 参数:format为输出数据格式

char *strptime(const char *buf,const char *format,struct tm *timeptr) 作用:strptime则是将一个字符串格式化为一个tm结构。 参数:buf为要修改的时间,一般为GPS时间 Format为数据格式,与buf时间格式必须一致,要不然会有段错误 %Y-%m-%d %H:%M:%S 年-月-日 时:分:秒 其他常见的格式化字符如下表所示:

格式含义%a星期几的简写形式%A星期几的全称%b月份的简写形式%B月份的全称%c日期和时间%d月份中的日期,0-31%H小时,00-23%I12进制小时钟点,01-12%j年份中的日期,001-366%m年份中的月份,01-12%M分钟,00-59%p上午或下午%S秒,00-60%u星期几,1-7%w星期几,0-6%x当地格式的日期 时间戳转时间字符串(strftime) #include #include #include using namespace std; string convertTimeStamp2TimeStr(time_t timeStamp){ struct tm *timeinfo = nullptr; char buffer[80]; timeinfo = localtime(&timeStamp); strftime(buffer,80,"%Y-%m-%d %H:%M:%S",timeinfo); printf("%s\n",buffer); return string(buffer); } int main(void) { convertTimeStamp2TimeStr(1633071600); //2021-10-1 15:00:00 return 0; }

在这里插入图片描述

时间字符串转时间戳 #include #include #include using namespace std; time_t convertTimeStr2TimeStamp(string timeStr){ struct tm timeinfo; strptime(timeStr.c_str(), "%Y-%m-%d %H:%M:%S", &timeinfo); time_t timeStamp = mktime(&timeinfo); printf("timeStamp=%ld\n",timeStamp); return timeStamp; } int main(void) { convertTimeStr2TimeStamp("2021-10-1 15:00:00"); return 0; }

在这里插入图片描述

windows下时间字符串转时间戳

由于windows下没有strptime函数,可以使用scanf来格式化时间

#include #include #include #include using namespace std; time_t StringToTimeStamp(string str){ struct tm tm_; int year, month, day, hour, minute,second; sscanf(str.c_str(),"%d-%d-%d %d:%d:%d", &year, &month, &day, &hour, &minute, &second); tm_.tm_year = year-1900; tm_.tm_mon = month-1; tm_.tm_mday = day; tm_.tm_hour = hour; tm_.tm_min = minute; tm_.tm_sec = second; tm_.tm_isdst = 0; time_t timeStamp = mktime(&tm_); return timeStamp; } int main(void) { cout


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有